package com.longtop.perform.khyg.web;

import java.util.HashMap;
import java.util.Map;

import com.longtop.framework.base.BaseAction;
import com.longtop.framework.util.WebUtil;
import com.longtop.intelliweb.action.IActionContext;
import com.longtop.intelliweb.action.IInitContext;
import com.longtop.intelliweb.view.Dataset;
import com.longtop.perform.khyg.service.ProjectService;

/**
 * 
 * @author 孙景弘
 * 
 */
public class ProjectListAction extends BaseAction {

	private ProjectService service;
	private final String DATASET_PROJECT = "Dataset_project";
	private final String DATASET_INDEXSYS = "Dataset_indexSys";// 指标id对应名称

	// 查询条件：
	Map<String, Object> queryMap = new HashMap<String, Object>();

	public ProjectListAction() {
		this.service = this.getBean(ProjectService.BEAN_ID);
	}

	/**
	 * 系统共用：初始化调用
	 */
	public void init(IInitContext context) {
		super.init(context);
	}

	/**
	 * 本页jsp：初始化业务数据(覆写父类方法)
	 */
	public void thisPageInit(IInitContext context) {
		commonQuery(context, true); // 查询列表
		// 加载数据：
		Dataset ds_indexSys = this.getDataset(context, DATASET_INDEXSYS);
		Dataset ds_project = this.getDataset(context, DATASET_PROJECT);
		// 验证数据集对象是否存在：
		if (!WebUtil.validateDatasetExist(this, ds_indexSys, DATASET_INDEXSYS) || !WebUtil.validateDatasetExist(this, ds_project, DATASET_PROJECT))
			return;

		// 指标体系id对应名称
		queryMap.put("fitObject", "1");
		service.queryForPageByIbatis("khygProjectSql.indexSysIdToName", null, queryMap, ds_indexSys, false);
	}

	/**
	 * 执行自定义查询-考核方案
	 * 
	 * @param context
	 */
	public void queryProject(IActionContext context) {
		commonQuery(context, true);
	}

	/**
	 * 执行翻页查询-考核方案
	 * 
	 * @param context
	 */
	public void loadProject(IActionContext context) {
		commonQuery(context, false);
	}

	/**
	 * 通用查询.将数据查询出来，拼装数据。
	 * 
	 */
	private void commonQuery(Object context, boolean fromPageOne) {
		Dataset dataset = this.getDataset(context, DATASET_PROJECT);
		if (fromPageOne) {
			dataset.setPageNo(1);
		}
		queryMap = this.getElementsToMap(context);// 获取页面自定义查询参数
		// 调用IbatisSQL语句进行查询。返回DATASET
		dataset = service.queryForPageByIbatis("khygProjectSql.queryProject", null, queryMap, dataset, false);
	}

}
